#ifndef  _FLAPP_NET_H_
#define  _FLAPP_NET_H_
#include <stdint.h>

#define CHECK_CMD	0xA0
#define CON_CMD		0xB0

#define PM25_MAX	999
#define VOC_MAX	999

typedef enum
{
	FAN_SPEED_0,						
	FAN_SPEED_1,					
	FAN_SPEED_2,					
	FAN_SPEED_MAX,					
}flapp_remote_fan_speed_e;

typedef enum
{
	VAILD_SWITCH_AUTO,						//自动有效位
	VAILD_SWITCH_ION,							//离子有效位
	VAILD_SWITCH_FAN,							//风速有效位
	VAILD_SWITCH_FIL_RST,					//滤网重置有效位
	VAILD_SWITCH_FIL_TMR,					//滤网是否达到使用寿命
	VAILD_SWITCH_NET,							//4G连接是否连接
}flapp_remote_vaild_e;

typedef enum
{
	REMOTE_VAILD,									//有效位
	REMOTE_AUTO,									//自动开关
	REMOTE_ION,										//离子
	REMOTE_FILTER_RESET,					//滤网重置
	REMOTE_FAN_SPEED,							//风速
	REMOTE_NUM,
}flapp_remote_control_e;

typedef enum
{
	SWITCH_VAILD_0,
	SWITCH_VAILD_1,		
	SWITCH_VAILD_FIL_RST,					//滤网重置
	SWITCH_VAILD_3,	
	SWITCH_VAILD_ION,							//水离子
}flapp_rd_switch_valid_e;

typedef enum
{
	DATA_VAILD_0,
	DATA_VAILD_1,		
	DATA_VAILD_2,			
	DATA_VAILD_3,	
	DATA_VAILD_FIL_TIME,					//滤网时长
	DATA_VAILD_4,	
	DATA_VAILD_MODE,							//工作模式
	DATA_VAILD_FAN,								//风速
}flapp_rd_data_valid_e;

typedef enum
{
	STATUS_NET_NULL,
	STATUS_NET_CONNECTTING,		//正在联网
	STATUS_NET_CONNECT_OK,		//联网成功
	STATUS_NET_CONNECT_FAIL,	//联网失败
	STATUS_4G_ENUM_END,
}flapp_rd_net_status_e;

typedef enum
{
	ERROR_4G_0,
	ERROR_4G_1,
	ERROR_4G_2,
	ERROR_4G_OTHER_ERR,	//其他未知错误
	ERROR_4G_NOT_BIND,	//没有绑定
	ERROR_4G_ID_SN_ERR,	//ID/SN错误
	ERROR_4G_FLASH,			//存储IC异常
	ERROR_4G_UR,				//接收不到MC数据
	ERROR_4G_ENUM_END,
}flapp_rd_net_err_e;


typedef enum
{
	WR_LOCAL_CON,						//本地操作
	WR_REMOTE_CON,					//远程操作
	WR_FIL_TIME_OUT,				//滤网更换提醒
	WR_SW_3,					
	WR_ION,									//离子开关
	WR_FIL_RST,							//滤网重置
	WR_SW_6,
	WR_SW_7,
}flapp_wr_switch_valid_e;

typedef enum
{
	DEVICE_ERROR_NET,					//通讯故障	Bit0	1：故障，0：正常
	DEVICE_ERROR_HUM,					//湿度故障	Bit0	1：故障，0：正常
	DEVICE_ERROR_TEMP,				//温度故障	Bit0	1：故障，0：正常
	DEVICE_ERROR_VOC,					//voc故障		Bit0	1：故障，0：正常
	DEVICE_ERROR_PM25,				//pm25故障	Bit0	1：故障，0：正常	
	DEVICE_ERROR_UV,					//uv故障		Bit0	1：故障，0：正常	
	DEVICE_ERROR_ION,					//离子故障	Bit7	1：故障，0：正常		
	DEVICE_ERROR_FAN,					//风扇故障	Bit7	1：故障，0：正常
	DEVICE_ERROR_END,
}flapp_wr_device_err_e;




typedef enum 
{
  NET_RD_HEAD						=0,	//	0xAA
	NET_RD_COMMAND				=1,	//	查询或控制指令	
	NET_RD_SWITCH_VALID		=2,	//	Bit7	
														//	Bit6
														//	Bit5	
														//	Bit4	为1则设置的UV数据有效；为0则无效
														//	Bit3	
														//	Bit2	为1则设置的滤网重置数据有效；为0则无效
														//	Bit1	
														//	Bit0	
	NET_RD_DATA_VALID			=3,	//	Bit7	为1则设置的风速档位数据有效；为0则无效
														//	Bit6	为1则设置的工作模式数据有效；为0则无效
														//	Bit5	
														//	Bit4	为1则设置的设置滤网寿命数据有效；为0则无效

	NET_RD_SWITCH_VAL			=4,	//	Bit7	
														//	Bit6	
														//	Bit5	
														//	Bit4	UV/负离子/雾离子：1：开启；0：关闭
														//	Bit3	
														//	Bit2	滤网重置：1：重置；0：无效
														//	Bit1	
														//	Bit0  
	NET_RD_FAN_SPEED			=5,	//	风速档位
	NET_RD_WORK_MODE			=6,	//	工作模式
	NET_RD_BOOKTIME_H			=7,	//	定时关机高位
	NET_RD_BOOKTIME_L			=8,	//	定时关机低位
	NET_RD_LIFTTIME_H			=9,	//滤网时长高位
	NET_RD_LIFTTIME_L			=10,//滤网时长低位
	NET_RD_STATUS_4G			=11,//联网状态，1正在联网 2联网成功 3联网失败
	NET_RD_CSQ						=12,//id
	NET_RD_ERR		  			=13,//错误信息
	NET_RD_SOFT_VER				=14,//模块软件版本号
	NET_RD_FRAME_NUM			=15,//帧号
	NET_RD_NET_ID_H				=16,//id
	NET_RD_NET_ID_M				=17,
	NET_RD_NET_ID_L				=18,
	NET_RD_NET_SN_H				=19,//sn
	NET_RD_NET_SN_M				=20,
	NET_RD_NET_SN_L				=21,
	NET_RD_RES1						=22,
	NET_RD_SET_OPEN_CNT 	=23,//设置开盖次数
	NET_RD_SET_PM1_H 			=24,//设置PM1报警值
	NET_RD_SET_PM1_L,			
	NET_RD_SET_PM2_H			=26,//设置PM2.5报警值
	NET_RD_SET_PM2_L,
	NET_RD_SET_PM10_H			=28,//设置PM10报警值
	NET_RD_SET_PM10_L,
	NET_RD_SET_CO_H				=30,//设置CO报警值
	NET_RD_SET_CO_L,
	NET_RD_SET_CO2_H			=32,//设置CO2报警值
	NET_RD_SET_CO2_L,
	NET_RD_SET_JJ_H				=34,//设置CH3CH2OH酒精报警值
	NET_RD_SET_JJ_L,
	NET_RD_SET_CH2O_H			=36,//设置甲醛报警值
	NET_RD_SET_CH2O_L,
	NET_RD_SET_VAILD			=38,//设置有效位	
	NET_RD_LSB_FLAG				=39,//坐标上传标志
  NET_RD_CHECKNUM				=40,//校验码，除了自己其它byte之和
	
  NET_RD_ENUM_END
}flapp_net_rd_e;

typedef enum 
{
  NET_WR_HEAD						=0,	//0xAA
	NET_WR_SWITCH_VAL			=1,	
	NET_WR_FAN_SPEED			=2,	
	NET_WR_WORK_MODE			=3,
	NET_WR_TIMED_H				=4,	//定时关机剩余时长
	NET_WR_TIMED_L				=5,


	NET_WR_LIFTTIME_H			=6,	//滤网使用时长
	NET_WR_LIFTTIME_L			=7,
	NET_WR_PM_LEVEL				=8,	//pm2.5等级
	NET_WR_VOC_LEVEL			=9,	//voc等级


	NET_WR_PM_H						=10,//PM2.5值
	NET_WR_PM_L						=11,
	NET_WR_VOC_H					=12,//VOC值
	NET_WR_VOC_L					=13,

	NET_WR_TEMP						=14,//温度
	NET_WR_HUM						=15,//湿度
	NET_WR_CADR_H					=16,//cadr值
	NET_WR_CADR_L					=17,

	NET_WR_ERROR					=18,//错误信息，主机故障
	
	NET_WR_SLAVE_ERROR_H	=19,//从机故障,最大65536。/1000=从机编号。%1000=故障代码
	NET_WR_SLAVE_ERROR_L,
	
	NET_WR_OPEN_CNT				=21,//充电+开盖次数，适用于垃圾桶项目
	NET_WR_ELE						=22,//电池电量
	NET_WR_PM1_VAL_H			=23,//PM1.0值
	NET_WR_PM1_VAL_L,
	NET_WR_PM10_VAL_H			=25,//PM10值
	NET_WR_PM10_VAL_L,
	NET_WR_CO_VAL_H				=27,//CO值
	NET_WR_CO_VAL_L,
	NET_WR_CO2_VAL_H			=29,//CO2值
	NET_WR_CO2_VAL_L,
	NET_WR_JJ_VAL_H				=31,//酒精值
	NET_WR_JJ_VAL_L,
	NET_WR_CH2O_VAL_H			=33,//甲醛值
	NET_WR_CH2O_VAL_L,
	
	NET_WR_DEVICE_TYPE		=35,//设备型号
	NET_WR_SOFT_VERSION		=36,//软件版本号
	NET_WR_FRAME_NUM			=37,//帧号

	NET_WR_SET_LIFTTIME_H	=38,//设定滤网寿命
	NET_WR_SET_LIFTTIME_L	=39,
	NET_WR_CHECKNUM				=40,//校验码

	NET_WR_ENUM_END
}flapp_net_wr_e;

void flapp_save_init(void);
void flapp_net_run(void);

#endif

